package com.irssproject.app.web.action.lectorRSS;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.irssproject.app.bean.lectorRSS.Subscripcio;
import com.irssproject.app.bean.main.Usuari;
import com.irssproject.app.service.lectorRSS.iface.SubscripcioService;
import com.irssproject.app.utils.Constants;
import com.irssproject.app.web.action.JSONWrappers.SubscripcioJSONWrapper;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings({"unchecked","serial"})
public class RefrescarLectorAction extends ActionSupport {

	

	SubscripcioService subscripcioService;
	
	public RefrescarLectorAction(SubscripcioService subscripcioService)
	{
		this.subscripcioService = subscripcioService;
	}
	
	private List<SubscripcioJSONWrapper> liSubscripcions = new ArrayList<SubscripcioJSONWrapper>();
	
	private Subscripcio subscripcio;
	
	private String feedURL;
	
	private List<String> llistaIdsSubscripcions;
	
	private String content;

	private ArrayList items;
	
	public ArrayList getItems() {
		return items;
	}

	public void setItems(ArrayList items) {
		this.items = items;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public String getContent() {
		return content;
	}

	public void setLiSubscripcions(List<SubscripcioJSONWrapper> liSubscripcions) {
		this.liSubscripcions = liSubscripcions;
	}

	public List<SubscripcioJSONWrapper> getLiSubscripcions() {
		return liSubscripcions;
	}

	public void setFeedURL(String feedURL) {
		this.feedURL = feedURL;
	}

	public String getFeedURL() {
		return feedURL;
	}

	public void setSubscripcio(Subscripcio subscripcio) {
		this.subscripcio = subscripcio;
	}

	public Subscripcio getSubscripcio() {
		return subscripcio;
	}


	public String refrescarLector(){
		try{
			Map session = ActionContext.getContext().getSession();
				
			if (session.containsKey(Constants.SESSIO_USUARI_AUTENTICAT))
			{
				Usuari usuari = ((Usuari)session.get(Constants.SESSIO_USUARI_AUTENTICAT));
		
				String x = (String)llistaIdsSubscripcions.get(0);
				
				String[] listIdsSubscripcions = x.split(",");
				
				for (int i=0;i<listIdsSubscripcions.length;i++)
				{
					subscripcioService.refrescarSubscripcio(new Long(listIdsSubscripcions[i]));
	
				}
				
				List<Subscripcio> llistaSubscripcions = subscripcioService.getListSubscripcions(usuari);
				SubscripcioJSONWrapper sJSON = new SubscripcioJSONWrapper();
				
				Iterator<Subscripcio> it = llistaSubscripcions.iterator();
				
				while(it.hasNext())
				{
					Subscripcio refrescada = it.next();
					sJSON = new SubscripcioJSONWrapper();
					sJSON.setId(refrescada.getId());
					sJSON.setEtiqueta(refrescada.getEtiqueta());
					sJSON.setFeed(refrescada.getFeed());
					sJSON.setNumItemsNoLlegits(refrescada.getNumItemsNoLlegits());

					liSubscripcions.add(sJSON);
						
				}


				setLiSubscripcions(liSubscripcions);		

			}
			
		}catch (Exception e) {
			e.printStackTrace();
		
		}

		return SUCCESS;
	}

	public void setLlistaIdsSubscripcions(List<String> LlistaIdsSubscripcions) {
		this.llistaIdsSubscripcions = LlistaIdsSubscripcions;
	}

	public List<String> getLlistaIdsSubscripcions() {
		return llistaIdsSubscripcions;
	}
	
}

